package com.topten.dao.especificos;

import java.util.List;

import javax.persistence.TypedQuery;

import com.topten.basicas.varejo.Categoria;
import com.topten.basicas.varejo.Marca;
import com.topten.basicas.varejo.Produto;
import com.topten.basicas.varejo.Unidade;
import com.topten.dao.generico.DAOGenerico;

public class DAOProduto extends DAOGenerico<Produto> implements IDAOProduto {
	
	@Override
	public List<Produto> listarProdutosPorCategoria(Categoria categoria){
		String jpql = "select p from Produto p where p.categoria = :cat";
		TypedQuery<Produto> query = getEntityManager().createQuery(jpql, Produto.class);
		query.setParameter("cat", categoria);
		return query.getResultList();
	}
	
	@Override
	public List<Produto> listarProdutosPorMarca(Marca marca){
		String jpql = "select p from Produto p where p.marca = :mar";
		TypedQuery<Produto> query = getEntityManager().createQuery(jpql, Produto.class);
		query.setParameter("mar", marca);
		return query.getResultList();
	}

	@Override
	public List<Produto> listarProdutosPorUnidade(Unidade unidade) {
		String jpql = "select p from Produto p where p.unidade= :uni";
		TypedQuery<Produto> query = getEntityManager().createQuery(jpql, Produto.class);
		query.setParameter("uni", unidade);
		return query.getResultList();
	}

}
